home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / filesyst / xiafs / xiafspgm.8 / xiafspgm / xiafspgm-0.8.1 / README.mkboot < prev    next >
Text File  |  1993-03-22  |  7KB  |  190 lines

  1.             README 
  2.  
  3.             for mkboot
  4.  
  5.             Q. Frank Xia
  6.             qx@math.columbia.edu
  7.             March 20, 1993
  8.  
  9.  
  10. Mkboot is a small, easy to install and easy to use Linux booter.  
  11. It is filesystem independent (not really). The binary distribution
  12. contains nothing but a 13KB mkboot.
  13.  
  14.  
  15. The procedure of booting:
  16.     A PC based system is usually booted as following. When
  17.     power is turned on, the BIOS load the master boot sector 
  18.     which is the first sector of the first hard disk. The first
  19.     446 bytes of the master boot sector usually contains a small
  20.     program and the last 66 bytes contains a partition table and
  21.     a boot sector signature. The program looks for an "active"
  22.     partition. Once found, it load the first sector, the secondary
  23.     booter, of the active partition. Then it gives the control
  24.     to the secondary booter. It is the secondary booter who
  25.     take case the rest of the booting.
  26.  
  27. What mkboot provide ?
  28.     Mkboot provides both a master booter and a secondary booter.
  29.     In addition, it also provides a traditional master boot
  30.     sector, so one can uninstall mkboot. The master booter and
  31.     the secondary booter mkboot provide are independent. i.e.,
  32.     the master booter can work with other secondary booter and
  33.     the secondary booter can work with other master booter.
  34.  
  35. How to install the master booter ?
  36.     The syntex for installing master booter is like this.
  37.  
  38.     # mkboot -M /dev/hda -2 "Linux 0.99.7" -4 "OLD Linux" -1 MS-DOS
  39.  
  40.     Where, switch "-M" means dealing with master boot sector.
  41.     "/dev/hda" specifies which special deivce is the first disk.
  42.     One can fool mkboot by using other block device, so that
  43.     one can practise on floppy until one is convinced that it is
  44.     safe to use mkboot with hard disk and that you like it.
  45.     The switch "-2" "-4" and "-1" specify which partitions are
  46.     bootable. The partition number ranges from 1 to 4 for the
  47.     four primary partitions. "Linux 0.99.7", "OLD Linus" and MS-DOS 
  48.     are the names one gives to bootable systems respectively. They 
  49.     will be showed on the menu the master booter displays during 
  50.     booting.
  51.  
  52.     To uninstall mkboot do
  53.  
  54.     # mkboot -M /dev/hda
  55.  
  56.  
  57. How the master booter works ?
  58.     After the BIOS loads the master booter, the booter diskplays
  59.     a menu. The entries in the memu is specified by the command
  60.     line options of mkboot as above. For instance, the booter
  61.     installed above will show a menu looks like this.
  62.  
  63.     Frank Xia's Linux Booter v0.8
  64.  
  65.         [1]    Linux 0.99.7
  66.         [2]       OLD Linux
  67.         [3]       MS-DOS
  68.  
  69.     Boot:
  70.  
  71.     The order of the entries is the same as specified in the command
  72.     line options. The numbers in the menu has nothing to do with
  73.     the partition numbers.  The first system is the default one.
  74.     One can choose one of them to boot. If one hit the key other than
  75.     all the numbers showed on the menu or no key is hit after 15 seconds,
  76.     the master booter will boot the default partiton.
  77.  
  78. How to install the secondary booter ?
  79.     If you want install the secondary booter and the kernel image
  80.     in xiafs filesystem on /dev/hda2, do
  81.     
  82.     # mkboot /dev/hda2  < zImage
  83.  
  84.     The xiafs filesystem should reserve at least as much as zImage
  85.     needed for kernel image. For hard disk, 512KB reserved space
  86.     is recommanded for future upgrade. For floppy, one just
  87.     need to reserve as much as zImage need. The default root device
  88.     is the device you installs secondary booter and the kernel image.
  89.     If you want use other device as root device you can use seitch "-f".
  90.     For example, If you want install the booter and the kernel image
  91.     on /dev/hda2 and use /dev/hdb6 as root device, do
  92.  
  93.     # mkboot -f /dev/hdb6 /dev/hda2 < zImage
  94.  
  95.     If you do not have xiafs, you have to use one partition for
  96.     the secondary booter and the kernel image (there are better
  97.     approach, see "Things to do" section). You may make a small
  98.     partition, 512KB is recommanded, for this purpose. For an
  99.     example, If you want install booter and kernel image on
  100.     /dev/hda4 and use /dev/hdb1 as root device, do
  101.  
  102.     # mkboot -r /dev/hdb1 /dev/hda4 < zImage
  103.  
  104.     Note, if you use "-r" switch, the contants of /dev/hda4 is
  105.     over written by the booter and the kernel.
  106.  
  107. How to use mkboot to make a bootable root diskette ?
  108.     Suppose the size of zImage you made is 180KB, do
  109.  
  110.     # mkxfs -k 180 /dev/fd0 1440
  111.     # mkboot /dev/fd0 < zImage
  112.  
  113.     Where 1440 is the size of filesystem. If your "disk A:" is 1.2MB
  114.     use 1200. Then you may mount the floppy, make directories and
  115.     copy necessary file to the floppy.
  116.     To install Linux on a hard disk from the bootable root diskette,
  117.     do
  118.  
  119.     # xfsck -k /dev/fd0 | mkboot <whatever>
  120.  
  121.     where "xfsck -k <whatever>" reads the kernel from the reserved 
  122.     space on the diskette and feed it into mkboot.
  123.  
  124. What caution one should take ?
  125.     mkboot, as any booter installation program, will write something
  126.     into the "reserved area" in the filesystem. If mkboot get wrong
  127.     information, it may trash the filesystem. If you use mkboot
  128.     without using switch "-M", it at most trash the partition you
  129.     specified. So make a backup of that partition before installing
  130.     secondary booter and the kernel image. With switch "-M", it is
  131.     more dangerous because mkboot will write the master booter to
  132.     the first sector of the first disk, which contains the partition
  133.     table. You may do following to avoid the possible damage. 
  134.  
  135.  
  136.     1. Copy the first sector to a file
  137.  
  138.         # dd if=/dev/hda of=master.bak bz=512 count=1
  139.  
  140.        and save master.bak in a bootable root diskette. In case the
  141.        partition table get trashed, you can restore it by booting the
  142.        root diskette and do
  143.     
  144.             # dd if=master.bak of=/dev/hda bz=512 count=1
  145.  
  146.     2. Copy the first sector to a floppy
  147.  
  148.         # dd if=/dev/hda of=/dev/fd0 bz=512 count=1
  149.  
  150.     3. Install the master booter on the floppy
  151.  
  152.         # mkboot -M  <whatever>
  153.     
  154.     4. Leave the floppy in the "disk A:", reboot the system.
  155.       
  156.     If it works, you may install the master booter on your hard disk.
  157.  
  158. Things to do.
  159.     There are two approaches to the booter. One approaches is to use a
  160.     sophiscated booter and put the kernel image in a file under root
  161.     directory or some other directory. The booter has to know more or
  162.     less the filesystem and/or the geometry of the disk. LILO and
  163.     Shoelace use this approach. The other approach is to use a simple
  164.     booter and put the kernel image in a contiguous sectors. This is
  165.     the approach mkboot use. Since all Linux filesystem except xiafs as 
  166.     I know does not reserve space for kernel image, there are 
  167.     difficulties to put kernel image in contiguous sectors. We can get 
  168.     around this difficulty in two ways. The first one is to use a
  169.     raw partition as above.
  170.  
  171.         # mkboot -r /dev/hdb6 /dev/hda4 < zImage
  172.  
  173.     where /dev/hda4 is used as a raw device. Another way to get around
  174.     is like this: Make a filesystem, say e2fs, smaller than the partition.
  175.     The space which is not used by the filesystem is "reserved" for
  176.     the kernel image. One can put kernel image there.
  177.  
  178.     The mkboot support the first mathod, namely the raw device. It is
  179.     not difficult to support the second method. Because I have other
  180.     higher prioraty things to do, I leave it open. If there are 
  181.     someone like to hack mkboot to support second method, I will
  182.     happy to put it into the mkboot.
  183.  
  184. Limitation.
  185.     The master booter only support four primary partitions.
  186.  
  187. --- END of README ---
  188.  
  189.  
  190.